#ifndef CLIPBOARD_H
#define CLIPBOARD_H

#include <QObject>
#include <QClipboard>
#include <QTimer>

class Protocol;

class ClipboardService : public QObject
{
    Q_OBJECT

public:
    explicit ClipboardService(QObject *parent = nullptr);
    ~ClipboardService();

    // 设置协议处理器
    void setProtocol(Protocol *protocol);
    
    // 启用/禁用剪贴板同步
    void setEnabled(bool enabled);
    bool isEnabled() const;

public slots:
    // 从远程更新本地剪贴板
    void updateLocalClipboard(const QString &text);
    
    // 清空剪贴板
    void clearClipboard();

private slots:
    // 处理本地剪贴板变化
    void onLocalClipboardChanged();
    
    // 发送剪贴板内容到远程
    void sendClipboardToRemote();

private:
    void setupClipboard();
    
    QClipboard *localClipboard;
    Protocol *protocol;
    bool enabled;
    bool ignoreChanges;
    QString lastText;
    QTimer *sendTimer;
};

#endif // CLIPBOARD_H